<template>
	<view>
		<u-modal :show="show" :title="title" :confirmText="confirmText" confirmColor="#FF2D71" @confirm="modalConfirm">
			<view slot="default" class="modal-content">{{updated_version_explain}}</view>
		</u-modal>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				show: false,
				title: '更新提示',
				confirmText: '确定升级',
				updated_version_explain: '',
				updated_version_no: '',
				updated_version_download_url: '',
				is_download: false,
				downloadResult: {},
			}
		},
		props: {},
		mounted() {},
		methods: {
			// 检查更新版本
			checkVersion() {
				// 更新版本号
				this.updated_version_no = this.$getSystemConfig('updated_version_no');
				// this.updated_version_no = '1.0.5';
				// 安装包下载地址
				this.updated_version_download_url = this.$getSystemConfig('updated_version_download_url');
				// 更新下载说明
				this.updated_version_explain = this.$getSystemConfig('updated_version_explain');
				// console.log(this.$getSystemInfo())
				// console.log(this.$getSystemInfo('appVersion'))
				// console.log(this.systemConfig.updated_version_no)
				// 获取系统版本对比线上接口版本
				if (this.$getSystemInfo('appVersion') < this.updated_version_no) {
					this.show = true;
				}
			},
			// 执行下载
			doUpData(resetURL) {
				let that = this;
				var is_mandatory = true;
				var showLoading = plus.nativeUI.showWaiting('正在下载');
				// uni.showLoading({
				//     title: '更新中……'
				// })
				const downloadTask = uni.downloadFile({
					// 执行下载
					url: resetURL, // 下载地址
					success: downloadResult => {
						// 下载好直接安装，下次启动生效
						plus.runtime.install(downloadResult.tempFilePath, {
							force: false
						}, () => {
							uni.hideLoading()
							if (is_mandatory) {
								//更新完重启app
								plus.runtime.restart();
								return;
							}
							uni.showModal({
								title: '安装成功是否重启？',
								success: res => {
									if (res.confirm) {
										// 更新完重启app
										plus.runtime.restart();
									}
								}
							});
						}, err => {
							uni.hideLoading()
							uni.showModal({
								title: '更新失败',
								content: err.message,
								showCancel: false
							});
						});
						// // 下载成功
						// // uni.hideLoading();
						// if (downloadResult.statusCode == 200) {
						// 	that.downloadResult = downloadResult
						// 	that.is_download = true;
						// 	that.content = '更新成功，请安装';
						// 	that.confirmText = '安装';
						// }
					}
				});
				downloadTask.onProgressUpdate(res => {
					showLoading.setTitle('  正在下载' + res.progress + '%  ');
					// console.log('下载进度' + res.progress);
					// 测试条件，取消下载任务。
					if (res.progress == 100) {
						plus.nativeUI.closeWaiting();
						// downloadTask.abort();    // 暂停下载
					}
				});
			},
			// 确定
			modalConfirm() {
				if (!this.is_download) { // 未下载
					// 更新操作， resetURL 是app更新的接口地址
					let resetURL = this.updated_version_download_url;
					// 1. 跳转浏览器下载
					// plus.runtime.openURL(resetURL);
					// 2. 系统内部更新下载
					this.doUpData(resetURL);
					// uni.clearStorageSync();
				} else { // 已下载
					plus.runtime.install(
						// 安装
						this.downloadResult.tempFilePath, {
							force: true
						},
						function(res) {
							utils.showToast('更新成功，重启中');
							plus.runtime.restart();
						}
					);
				}
			},
		}
	}
</script>
<style lang="scss">
	.modal-content {
		max-height: 600rpx;
		overflow-y: scroll;
	}
</style>